package com.zx._03_并发.chapter_04_public;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import lombok.extern.slf4j.Slf4j;

/**
 * 集合进行删除元素的操作
 */
@Slf4j
public class Demo_05_collection1 {

    public static void main(String[] args) {
        List<String> li = new ArrayList<String>();
        li.add("1");
        li.add("2");
        li.add("3");
        li.add("4");
        li.add("5");
        li.add("6");
        test3(li);
    }

    // 方式一：java.util.ConcurrentModificationException
    public static void test1(List<String> li) {
        for (String s : li) {
            if ("3".equals(s)) {
                li.remove(s);
            }
        }
        log.info(li.toString());
    }

    // 方式二：ok
    public static void test2(List<String> li) {
        Iterator<String> iterator = li.iterator();
        while (iterator.hasNext()) {
            String s = (String) iterator.next();
            if ("3".equals(s)) {
                iterator.remove();
            }
        }
        log.info(li.toString());
    }

    // 方式三：ok
    public static void test3(List<String> li) {
        for (int i = 0; i < li.size(); i++) {
            String s = li.get(i);
            if ("3".equals(s)) {
                li.remove(s);
            }
        }
        log.info(li.toString());
    }

}
